// 导入路由对象
const express = require("express")
const router = express.Router()//创建路由
// 导入控制器类
const Banner = require("../controllers/bannerController")
const banner = new Banner()

// 查询：
// 获取轮播图详情
// 请求方式：get
// 请求地址： http://localhost:3001/api/banner/detail?id=1
// 请求参数：id
router.get('/detail', async (req, res) => {
    let id = req.query.id || 1;
    await banner.detail(id).then(
        result => {
            res.send({
                result,
                msg: "根据id查询轮播图记录",
                code: 200
            })
        },
        err => {
            res.send({
                err,
                msg: "获取轮播图数据失败",
                code: -1
            })
        }
    )
})

// 获取轮播图列表
// 请求方式：get
// 请求地址： http://localhost:3001/api/banner/list
router.get('/list', async (req, res) => {
    await banner.list().then(
        result => {
            res.send({
                result,
                msg: "查询轮播图所有记录",
                code: 200
            })
        },
        err => {
            res.send({
                err,
                msg: "获取轮播图数据失败",
                code: -1
            })
        }
    )



})
// 搜索轮播图记录
// 请求方式：get
// 参数：keyword
// 请求地址：http://localhost:3001/api/banner/search?keyword=22
router.get('/search', async (req, res) => {
    let keyword = req.query.keyword;
    await banner.search(keyword).then(
        result => {
            res.send({
                result,
                code: 200,
                msg: "根据关键字查询轮播图记录",
            })
        },
        err => {
            res.send({
                err,
                msg: "获取轮播图数据失败",
                code: -1
            })
        }
    )

})

// 插入：
// 添加轮播图记录
// 请求方式：get
// 参数：banner_title, banner_link, banner_url
// 请求地址：http://localhost:3001/api/banner/add?banner_title=标题3&banner_link=https://taobao.com&banner_url=/static/img/3.jpg
router.get('/add', async (req, res) => {
    // 解构赋值
    let { banner_title, banner_link, banner_url } = req.query;
    if (banner_title == undefined || banner_link == undefined || banner_url == undefined) {
        res.send({
            code: -1,
            msg: "缺少参数",
        })
    }
    else {
        // 调用控制器的方法
        await banner.add(banner_title, banner_link, banner_url).then(
            result => {
                res.send({
                    result,
                    code: 200,
                    msg: "添加轮播图记录",
                })
            },
            err => {
                res.send({
                    err,
                    msg: "添加轮播图数据失败",
                    code: -1
                })
            }
        )

    }
})

// 修改轮播图记录
// 请求方式：get
// 参数：banner_title, banner_link, banner_url, id
// 请求地址：http://localhost:3001/api/banner/modify?banner_title=标题3333&banner_link=https://meituan.com&banner_url=/static/img/333.jpg&id=3
router.get('/modify', async (req, res) => {
    // 解构赋值
    let { banner_title, banner_link, banner_url, id } = req.query;
    if (banner_title == undefined || banner_link == undefined || banner_url == undefined || id == undefined) {
        res.send({
            code: -1,
            msg: "缺少参数",
        })
    }
    else {
        await banner.modify(banner_title, banner_link, banner_url, id).then(
            result => {
                res.send({
                    result,
                    code: 200,
                    msg: "根据id修改轮播图记录",
                })
            },
            err => {
                res.send({
                    err,
                    msg: "获取轮播图数据失败",
                    code: -1
                })
            }
        )


    }
})

// 删除轮播图记录
// 请求方式：get
// 参数：id
// 请求地址：http://localhost:3001/api/banner/remove?id=4
router.get('/remove', async (req, res) => {
    // 解构赋值
    let { id } = req.query;
    if (id == undefined) {
        res.send({
            code: -1,
            msg: "缺少参数",
        })
    }
    else {
        await banner.remove(id).then(
            result => {
                res.send({
                    result,
                    code: 200,
                    msg: "根据id删除轮播图记录",
                })
            },
            err => {
                res.send({
                    err,
                    msg: "获取轮播图数据失败",
                    code: -1
                })
            }
        )

    }
})

// 获取轮播图分页列表
// 请求方式：get
// 参数：page_num, page_size
// 请求地址：http://localhost:3001/api/banner/items?page_num=5&page_size=1
router.get('/items', async (req, res) => {
    // 解构赋值
    let { page_num, page_size } = req.query;
    if (page_num == undefined || page_size == undefined) {
        res.send({
            code: -1,
            msg: "缺少参数",
        })
    }
    else {
        let page_num2 = parseInt(page_num)
        let page_size2 = parseInt(page_size)
        await banner.items(page_num2, page_size2).then(
            result => {
                res.send({
                    result,
                    code: 200,
                    msg: "获取轮播图分页数据",
                })
            },
            err => {
                res.send({
                    err,
                    msg: "获取轮播图数据失败",
                    code: -1
                })
            }
        )
    }
})

// 挂载到模块系统上
module.exports = router;